#ifndef __NAVIGATIONMAPEDITOPERATOR_H__
#define __NAVIGATIONMAPEDITOPERATOR_H__

#include <stl/list.h>
#include <standard/delegate.h>
#include "operator/operator.h"
#include "command/navigationeditcmd.h"

class CNavigationMapEditOperator: public IDelegateInterface, public COperator{
public:
    CNavigationMapEditOperator( CEditorSceneMgr* pSceneMgr );
    virtual ~CNavigationMapEditOperator();
    virtual bool32 Init();
    virtual bool32 Final();
    virtual bool32 OnLMouseDown( int32 x, int32 y );
    virtual bool32 OnMouseMove( int32 x, int32 y );
    virtual bool32 OnLMouseUp( int32 x, int32 y );
    virtual void _Work( float fPosX, float fPosY );

protected:
    void OnNotification_SetTerrainBrushType(int32 w, int32 l, void* pUserData);
    void _FinishedWork();
    Ref< class CTerrainActiveBlockHelperObject* > m_rTerrainActiveBlockHelperObject;
    map< uint32, SNavigationDataInfo > m_vNavigationDataInfoList;

    bool32 m_bIsButtonDown;
    int32 m_nButtonDownX;
    int32 m_nButtonDownY;
    int32 m_nButtonWorkX;
    int32 m_nButtonWorkY;

};


#endif
